Dynamic update system for a remote physical device

ABSTRACT

A method for updating an embedded device that includes a processor that receives an image file including at least one of kernel software, hardware configuration data, and application software. The embedded device parses the image file to determine portions of the image file that have been indicated by at least one flag as being modified from that currently being included on the embedded device. The embedded device installing at least portions of the image file on the embedded device and resetting portions of the embedded device based upon the at least one flag.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 63/195,529 filed Jun. 1, 2021.

BACKGROUND

The subject matter of this application relates to efficient remote-phydataplane management for a cable system.

Cable Television (CATV) services provide content to large groups ofcustomers (e.g., subscribers) from a central delivery unit, generallyreferred to as a “head end,” which distributes channels of content toits customers from this central delivery unit through an access networkcomprising a hybrid fiber coax (HFC) cable plant, including associatedcomponents (nodes, amplifiers and taps). Modern Cable Television (CATV)service networks, however, not only provide media content such astelevision channels and music channels to a customer, but also provide ahost of digital communication services such as Internet Service,Video-on-Demand, telephone service such as VoIP, homeautomation/security, and so forth. These digital communication services,in turn, require not only communication in a downstream direction fromthe head end, through the HFC, typically forming a branch network and toa customer, but also require communication in an upstream direction froma customer to the head end typically through the HFC network.

To this end, CATV head ends have historically included a separate CableModem Termination System (CMTS), used to provide high speed dataservices, such as cable Internet, Voice over Internet Protocol, etc. tocable customers and a video headend system, used to provide videoservices, such as broadcast video and video on demand (VOD). Typically,a CMTS will include both Ethernet interfaces (or other more traditionalhigh-speed data interfaces) as well as radio frequency (RF) interfacesso that traffic coming from the Internet can be routed (or bridged)through the Ethernet interface, through the CMTS, and then onto the RFinterfaces that are connected to the cable company's hybrid fiber coax(HFC) system. Downstream traffic is delivered from the CMTS to a cablemodem and/or set top box in a customer's home, while upstream traffic isdelivered from a cable modem and/or set top box in a customer's home tothe CMTS. The Video Headend System similarly provides video to either aset-top, TV with a video decryption card, or other device capable ofdemodulating and decrypting the incoming encrypted video services. Manymodern CATV systems have combined the functionality of the CMTS with thevideo delivery system (e.g., EdgeQAM—quadrature amplitude modulation) ina single platform generally referred to an Integrated CMTS (e.g.,Integrated Converged Cable Access Platform (CCAP))—video services areprepared and provided to the I-CCAP which then QAM modulates the videoonto the appropriate frequencies. Still other modern CATV systemsgenerally referred to as distributed CMTS (e.g., distributed ConvergedCable Access Platform) may include a Remote PHY (or R-PHY) whichrelocates the physical layer (PHY) of a traditional Integrated CCAP bypushing it to the network's fiber nodes (R-MAC PHY relocates both theMAC and the PHY to the network's nodes). Thus, while the core in theCCAP performs the higher layer processing, the R-PHY device in theremote node converts the downstream data sent from the core fromdigital-to-analog to be transmitted on radio frequency to the cablemodems and/or set top boxes, and converts the upstream radio frequencydata sent from the cable modems and/or set top boxes fromanalog-to-digital format to be transmitted optically to the core.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the invention, and to show how the samemay be carried into effect, reference will now be made, by way ofexample, to the accompanying drawings, in which:

FIG. 1 illustrates an integrated Cable Modem Termination System.

FIG. 2 illustrates a distributed Cable Modem Termination System.

FIG. 3 illustrates a layered network processing stack.

FIG. 4 illustrates types of resets supported by a remote physicaldevice.

FIG. 5 illustrates a hard reset process for a remote physical device.

FIG. 6 illustrates a soft reset process for a remote physical device.

FIG. 7 illustrates a software image and components thereof.

FIG. 8 illustrates a comparison process to identify modified componentsof the image files and the type of reset process to undertake.

DETAILED DESCRIPTION

Referring to FIG. 1 , an integrated CMTS (e.g., Integrated ConvergedCable Access Platform (CCAP)) 100 may include data 110 that is sent andreceived over the Internet (or other network) typically in the form ofpacketized data. The integrated CMTS 100 may also receive downstreamvideo 120, typically in the form of packetized data from an operatorvideo aggregation system. By way of example, broadcast video istypically obtained from a satellite delivery system and pre-processedfor delivery to the subscriber though the CCAP or video headend system.The integrated CMTS 100 receives and processes the received data 110 anddownstream video 120. The CMTS 130 may transmit downstream data 140 anddownstream video 150 to a customer's cable modem and/or set top box 160through a RF distribution network, which may include other devices, suchas amplifiers and splitters. The CMTS 130 may receive upstream data 170from a customer's cable modem and/or set top box 160 through a network,which may include other devices, such as amplifiers and splitters. TheCMTS 130 may include multiple devices to achieve its desiredcapabilities.

Referring to FIG. 2 , as a result of increasing bandwidth demands,limited facility space for integrated CMTSs, and power consumptionconsiderations, it is desirable to include a Distributed Cable ModemTermination System (D-CMTS) 200 (e.g., Distributed Converged CableAccess Platform (CCAP)). In general, the CMTS is focused on dataservices while the CCAP further includes broadcast video services. TheD-CMTS 200 distributes a portion of the functionality of the I-CMTS 100downstream to a remote location, such as a fiber node, using networkpacketized data. An exemplary D-CMTS 200 may include a remote PHYarchitecture, where a remote PHY (R-PHY) is preferably an optical nodedevice that is located at the junction of the fiber and the coaxial. Ingeneral the R-PHY often includes the MAC and/or PHY layers of a portionof the system. The D-CMTS 200 may include a D-CMTS 230 (e.g., core) thatincludes data 210 that is sent and received over the Internet (or othernetwork) typically in the form of packetized data. The D-CMTS 230 mayalso receive downstream video 220, typically in the form of packetizeddata from an operator video aggregation system. The D-CMTS 230 receivesand processes the received data 210 and downstream video 220. A remotefiber node 280 preferably include a remote PHY device 290. The remotePHY device 290 may transmit downstream data 240 and downstream video 250to a customer's cable modem and/or set top box 260 through a network,which may include other devices, such as amplifier and splitters. Theremote PHY device 290 may receive upstream data 270 from a customer'scable modem and/or set top box 260 through a network, which may includeother devices, such as amplifiers and splitters. The remote PHY device290 may include multiple devices to achieve its desired capabilities.The remote PHY device 290 primarily includes PHY related circuitry, suchas downstream QAM modulators, upstream QAM demodulators, together withpsuedowire logic to connect to the D-CMTS 230 using network packetizeddata. The remote PHY device 290 and the D-CMTS 230 may include dataand/or video interconnections, such as downstream data, downstreamvideo, and upstream data 295. It is noted that, in some embodiments,video traffic may go directly to the remote physical device therebybypassing the D-CMTS 230.

By way of example, the remote PHY device 290 may covert downstreamDOCSIS (i.e., Data Over Cable Service Interface Specification) data(e.g., DOCSIS 1.0; 1.1; 2.0; 3.0; 3.1; and 4.0 each of which areincorporated herein by reference in their entirety), video data, out ofband signals received from the D-CMTS 230 to analog for transmissionover RF or analog optics. By way of example, the remote PHY device 290may convert upstream DOCSIS, and out of band signals received from ananalog medium, such as RF or analog optics, to digital for transmissionto the D-CMTS 230. As it may be observed, depending on the particularconfiguration, the R-PHY may move all or a portion of the DOCSIS MACand/or PHY layers down to the fiber node.

Referring to FIG. 3 , for data processing and for transferring dataacross a network, the architecture of the hardware and/or software maybe configured in the form of a plurality of different planes, each ofwhich performing a different set of functionality. In relevant part thelayered architecture may include different planes such as a managementplane 300, a control plane 310, and a data plane 320. A switch fabric330 may be included as part of the layered architecture.

For example, the management plane 300 may be generally considered as thecustomer interaction or otherwise the general software application beingrun. The management plane typically configures, monitors, and providesmanagement, monitoring, and configuration served to all layers of thenetwork stack and other portions of the system.

For example, the control plane 310 is a component to a switchingfunction that often includes system configuration, management, andexchange of routing table information and forwarding information.Typically, the exchange of routing table information is performedrelatively infrequently. A route controller of the control plane 310exchanges topology information with other switches and constructs arouting table based upon a routing protocol. The control plane may alsocreate a forwarding table for a forwarding engine. In general, thecontrol plane may be thought of as the layer that makes decisions aboutwhere traffic is sent. Since the control functions are not performed oneach arriving individual packet, they tend not to have a strict speedconstraint.

For example, the data plane 320 parses packet headers for switching,manages quality of service, filtering, medium access control,encapsulations, and/or queuing. As a general matter, the data planecarriers the data traffic, which may be substantial in the case of cabledistribution networks. In general, the data plane may be thought of asthe layer that primarily forwards traffic to the next hop along the pathto the selected destination according to the control plane logic throughthe switch fabric. The data plane tends to have strict speed constraintssince it is performing functions on each arriving individual packet.

The remote physical device 290 needs to support updating the software ofthe remote physical device. For example, the D-CMTS 230 may command theremote physical device 290 to reset via a ResetCtrl GCP TLV, such asusing a command line interface. For example, the remote physical device290 may initiate a reset on its own in reaction to some internal orexternal event.

Referring to FIG. 4 , the remote physical device 290 may include a hardreset 400 which is the most comprehensive form of reset. The hard reset400 may be thought of as a “reboot” of the device. When the remotephysical device 290 performs a hard reset 400, the remote physicaldevice 290 performs a power cycle, or the equivalent thereof, whereuponthe remote physical device 290 returns to a state similar to the stateachieved on initial power up. The remote physical device 290 retainsnon-volatile configuration through the hard reset. After the hard reset400, the remote physical device 290 returns to the beginning of theremote physical device 290 initialization state machine and performsinitialization.

The remote physical device 290 may include a soft reset 410 thatprovides a partial reset of the remote physical device 290. After a softreset 410, the remote physical device 290 takes steps to hasten theremote physical device 290 initialization process and minimize serviceinterruption. The soft reset 410 resets the remote physical device 290volatile configuration and operating state, including terminating allconnections to all D-CMTSs, releasing IP addresses obtained via DHCP,clearing network authentication information, etc. The remote physicaldevice 290 may reset all software states except that which is needed tomaintain IEEE 1588 clock frequency.

The soft reset 410 achieves quicker remote physical device 290initialization by maintaining the current IEEE 1588 clock frequencywithout adjustment throughout the soft reset 410 process until itrestarts the sync process with the grand master clock (GMC). This allowsthe remote physical device 290 to provide synchronized operation withouthaving to engage in the time consuming full PTP sync process with theGMC.

Referring to FIG. 5 , the hard reset 400 undergoes a time consumingprocess that generally requires 4-5 minutes during which service for thecustomer is not provided by the remote physical device 290. The hardreset 400 process tends to vary from remote physical device to remotephysical device, but in general, the D-CMTS 230 downloads an image file(.ITB) that includes a FPGA image, a Uboot (Boot.bin), a Linux Kernel,and all applications and software dataplane. The remote physical device290 then executes the primary boot loader 530 that includes instructionsto boot the remote physical device's 290 operating system kernel. Theoperating system kernel 540 is booted and then the software stack isstarted 550. The software stack 550 includes a software dataplane 552and a plurality of software applications 554. After starting thesoftware stack 550, the remote physical device 290 initializes thehardware 560 (e.g., initialize hardware/programmable logic or FPGAcircuits of RPD). After the hardware initializes 560, the remotephysical device 290 connects with the D-CMTS 230 to be configured 570and precision timing protocol 580 is established. The FPGA and otherelectronic circuits are generally referred to herein as a processor.

Referring to FIG. 6 , the soft reset 410 omits downloading the imagefile(.ITB), omits resetting remote physical device, omits loading the entireimage file (.ITB), omits executing the primary boot loader, and omitsbooting operating system kernel. The soft reset 410 undergoes a somewhattime consuming process that requires generally 60 seconds where servicefor the customer is not provided by the remote physical device 290. Thesoft reset 410 may include starting the software stack 650 whichincludes a software dataplane 652 and a plurality of softwareapplications 654. After starting the software stack 650, the remotephysical device 290 initializes the hardware 660 (e.g., initializehardware/programmable logic or FPGA circuits of RPD). After the hardwareinitializes 660, the remote physical device 290 connects with the D-CMTS230 to be configured 670 and precision timing protocol 680 remainsestablished.

In the case of either the hard reset or the soft reset, the videoservice, data service, out-of-band data service, etc. are impactedbecause the reset process kills all applications including the softwaredataplane. During the reset process the remote physical device 290re-establishes the GCP (“generic control plane” is a protocol used forconfiguration of the remote physical device) and the L2TP (layer twotunnelling protocol) connections from scratch. Also during the resetprocess of the remote physical device 290, the software dataplane isrestarted and reprogrammed. Further, the FPGA dataplane modulator isreprogrammed.

When the remote physical device 290 is restarted, either as a result ofa hard reset or a soft reset, the processing of video content, dataservice, and out-of-band data does not restart until after theconfiguration is processed and the precision timing protocol isestablished or maintained. Unfortunately, for a hard reset this processtypically takes 4-5 minutes to complete. In most cases, resetting theremote physical device, executing the primary boot loader, downloadingof the image file (.ITB) file, and booting operating system kernel isnot necessary because those portions of the remote physical device 290remain operational. In most cases, if updating is required only thesoftware stack 650 which includes the software dataplane 652 and theplurality of software applications 654 is modified. After modificationof the software stack 650, the remote physical device 290 initializesthe hardware 660 and connects with the D-CMTS 230 to be configured 670and establish the precision timing protocol 680.

Unfortunately, the hard reset process typically requires over 4-5minutes to complete and the soft reset process typically requires over aminute to complete, during which time services for customers are notavailable. A modified process is desirable to reduce the impact on thecurrently active services both from the perspective of the remotephysical device and the perspective of the D-CMTS. To achieve areduction in the unavailability of active services during the resetprocess, it is desirable to modify the image file that is downloaded tothe remote physical device 290 includes multiple different portionstherein. Referring to FIG. 7 , the software image may be in the form ofan image tree blob (.ITB) file format. The software image 700 mayinclude a FPGA image 710 (e.g., a bitstream, configuration data), aprimary boot loader 720 (e.g., Uboot), a kernel 730 (e.g., Linux), asoftware dataplane 740, and/or software applications 750. In thismanner, the software image may include selected portions of the overallsystem for updating the remote physical device 290. While providingselected portions over the overall system for the remote physical device290 is beneficial, it is also desirable for the software image 700 toindicate those portions of the image file, such as the FPGA image 710,the primary boot loader 720, the kernel 730, the software dataplane 740,and/or the software applications 750, inclusive of portions thereof,that have been modified from the previous over software image (multiplesoftware images in the case of the overall configuration is includedamong multiple software images) that was provided to the remote physicaldevice 290.

Referring to FIG. 8 , when packaging the software image 700 for theremote physical device 290, a comparison 800 is made to identify thoseportions that are different from one or more previous image filesinstalled on the remote physical device 290. For example, the comparison800 may identify whether the Kernel 810 has been modified, whether theFPGA has been modified 812, whether any of the software applicationshave been modified 814, whether any particular software application hasbeen modified 816, and the portions of any particular softwareapplication that has been modified 818. In addition, the comparison 800may further identify the type of reset that would be appropriate basedupon the modification, such as, a hard reset 830, a soft reset 832, asoftware dataplane of the dataplane reset 834, a software dataplane andsoftware applications reset 836, particular software applications of thesoftware dataplane of the dataplane reset 838, particular softwareapplications of the software dataplane and software applications reset840. The packaging of the image may include one or more flags 850included within the package to indicate the manner in which the imageshould be installed. For a Linux distribution, the image file is all orpart of the root file system. It is noted that the image file mayinclude sub-image files included therein. The reset may, for example, bea reset of the entire device. The reset may, for example, be a reset ofall of the software applications running on the FPGA. The reset may, forexample, be a reset of a selected set of one or more softwareapplications running on the FPGA. The reset may, for example, be a resetof one of the software applications running on the FPGA, which does notimpact the services provided to the user. In this manner, only selectedportions of the system may be dynamically updated based upon the flags.In addition, the type of reset process that occurs may be based upon thenature of the changed or otherwise indicated based upon the flags. It isto be understood that the flag may be any type of indictor, such as asingle bit, a string, a set of bits, or otherwise. It is further notedthat during the comparison of the ITB files, the system may use MD5 hashvalues to determine which sub-images have changed, where the MD5 hashvalues may be calculated during built time.

As previously described to reduce the impact on services it wasdetermined that if there is an error in the dataplane, then the softwaredataplane should be updated (if necessary) and restarted in an effectivemanner. If there is an error in the software applications, then one ormore of the software applications should be updated (if necessary) andrestarted in an effective manner.

The soft reset process, the hard reset process, and/or any modifiedreset processes may be initiated in any suitable manner. For example,initiation may be through a command line interface, a command from theD-CMTS, and/or the remote physical device in the event of a failure suchas a software crash, a watchdog timeout, a software upgrade, etc.

As previously noted, the process by which the image files are built maybe modified to include the ability to do the comparisons and include theflags therein. The remote physical device parses the image file todetermine the appropriate manner of loading the parts of the image filebased upon the flags and installing them on the remote physical device.

It is noted that the process by which an image file is flagged orotherwise changes are identified in the image file may be used for otherapplications, apart from the remote physical device, and apart from thecable networking environment.

Moreover, each functional block or various features in each of theaforementioned embodiments may be implemented or executed by acircuitry, which is typically an integrated circuit or a plurality ofintegrated circuits. The circuitry designed to execute the functionsdescribed in the present specification may comprise a general-purposeprocessor, a digital signal processor (DSP), an application specific orgeneral application integrated circuit (ASIC), a field programmable gatearray (FPGA), or other programmable logic devices, discrete gates ortransistor logic, or a discrete hardware component, or a combinationthereof. The general-purpose processor may be a microprocessor, oralternatively, the processor may be a conventional processor, acontroller, a microcontroller or a state machine. The general-purposeprocessor or each circuit described above may be configured by a digitalcircuit or may be configured by an analogue circuit. Further, when atechnology of making into an integrated circuit superseding integratedcircuits at the present time appears due to advancement of asemiconductor technology, the integrated circuit by this technology isalso able to be used.

It will be appreciated that the invention is not restricted to theparticular embodiment that has been described, and that variations maybe made therein without departing from the scope of the invention asdefined in the appended claims, as interpreted in accordance withprinciples of prevailing law, including the doctrine of equivalents orany other principle that enlarges the enforceable scope of a claimbeyond its literal scope. Unless the context indicates otherwise, areference in a claim to the number of instances of an element, be it areference to one instance or more than one instance, requires at leastthe stated number of instances of the element but is not intended toexclude from the scope of the claim a structure or method having moreinstances of that element than stated. The word “comprise” or aderivative thereof, when used in a claim, is used in a nonexclusivesense that is not intended to exclude the presence of other elements orsteps in a claimed structure or method.

1. A cable distribution system that includes a head end connected to aplurality of customer devices through a transmission network thatincludes a remote fiber node that converts digital data to analog datasuitable for said plurality of customer devices, where said remote fibernode includes a processor, comprising the steps of: (a) said remotefiber node receiving an image file including at least one of kernelsoftware, hardware configuration data, and application software; (b)said remote fiber node parsing said image file to determine portions ofsaid image file that have been indicated by at least one flag as beingmodified from that currently being included on said remote fiber node;(c) said remote fiber node installing at least portions of said imagefile on said remote fiber node and resetting portions of said remotefiber node based upon said at least one flag.
 2. The cable distributionsystem of claim 1 further comprising said remote fiber node resettingsoftware applications in a control plane.
 3. The cable distributionsystem of claim 2 further comprising modifying at least one of saidsoftware applications as a result of resetting said remote fiber node.4. The cable distribution system of claim 1 further comprising modifyingsaid software dataplane as a result of resetting said remote fiber node.5. The cable distribution system of claim 1 further comprising saidremote fiber node resetting software applications in a software plane.6. The cable distribution system of claim 1 further comprising a hardreset of said remote fiber node.
 7. The cable distribution system ofclaim 1 further comprising a hard reset of said remote fiber node. 8.The cable distribution system of claim 1 wherein said image fileincludes kernel software.
 9. The cable distribution system of claim 1wherein said image file includes hardware configuration data.
 10. Thecable distribution system of claim 1 wherein said image file includesapplication software.
 11. A method for updating an embedded device thatincludes a processor, comprising the steps of: (a) said embedded devicereceiving an image file including at least one of kernel software,hardware configuration data, and application software; (b) said embeddeddevice parsing said image file to determine portions of said image filethat have been indicated by at least one flag as being modified fromthat currently being included on said embedded device; (c) said embeddeddevice installing at least portions of said image file on said embeddeddevice and resetting portions of said embedded device based upon said atleast one flag.
 12. The embedded device of claim 10 further comprisingsaid embedded device resetting software applications in a control plane.13. The embedded device of claim 12 further comprising modifying atleast one of said software applications as a result of resetting saidembedded device.
 14. The embedded device of claim 11 further comprisingmodifying said software dataplane as a result of resetting said embeddeddevice.
 15. The embedded device of claim 11 further comprising saidembedded device resetting software applications in a software plane. 16.The embedded device of claim 11 further comprising a hard reset of saidembedded device.
 17. The embedded device of claim 11 further comprisinga hard reset of said embedded device.
 18. The embedded device of claim11 wherein said image file includes kernel software.
 19. The embeddeddevice of claim 11 wherein said image file includes hardwareconfiguration data.
 20. The embedded device of claim 11 wherein saidimage file includes application software.